package config

import "gitee.com/gousing/values"

// GetString 获取 String 配置项, 配置项不存在或类型转换失败时返回零值
func GetString(key string) string {
	return GetStringD(key, "")
}

// GetStringD 获取 String 配置项, 配置项不存在或类型转换失败时返回指定的默认值
func GetStringD(key string, defaultVal string) string {
	if v, ok := GetExist(key); !ok {
		return defaultVal
	} else {
		if to, err := values.ToStringE(v); err != nil {
			return defaultVal
		} else {
			return to
		}
	}
}

// GetStringE 获取 String 配置项, 配置项不存在或类型转换失败时返回零值及错误信息
func GetStringE(key string) (string, error) {
	if v, ok := GetExist(key); !ok {
		return "", ErrKeyNotExist
	} else {
		return values.ToStringE(v)
	}
}
